{{tag>samba serveur réseau authentification administration tutoriel BROUILLON}}

----

====== Comment intégrer une machine Ubuntu dans un domaine NT Samba ? ======

Beaucoup de vieux réseau géré par un contrôleur de domaine NT4 ont été remplacés à moindre coût par des serveurs avec Samba paramétré en PDC. Ainsi, les utilisateurs des différentes versions de MS Windows (98 à XP) peuvent continuer à s'authentifier et partager des ressources. Mais si vous désirez également remplacer ou intégrer des machines équipées d'Ubuntu (K/X/Ed/Ubuntu compris) il serait intéressant qu'elles aient accès au même réseau et service.

Si c'est la connexion à un domaine Microsoft Active Directory qui vous intéresse reportez vous au tutoriel «  [[:tutoriel:comment_ajouter_machine_ubuntu_dans_domaine_active_directory|Comment ajouter une machine Ubuntu dans un domaine Microsoft Active Directory ?]] ».


===== Installation =====

Pour pouvoir intégrer un PC Ubuntu à un domaine Samba, il vous faut installer le paquet //winbind// seul. Vous n'avez pas besoin du serveur Samba, seul le client Samba installé par défaut avec votre Ubuntu suffit. Pour accéder aux partages SMB de manière automatique, il faut utiliser la bibliothèque //libpam-mount// et //smbfs//. Vous avez donc à [[:tutoriel:comment_installer_un_paquet|installer les paquets]] **winbind libpam-mount smbfs**.


===== Configuration =====

Plusieurs fichiers doivent être modifiés pour que l'authentification se fasse grâce au domaine.


==== nsswitch.conf ====


Le fichier « /etc/nsswitch.conf » est le fichier de configuration des bases de données systèmes et des services de noms.
C'est à lui que l'on va dire d'utiliser //winbind// pour trouver les noms d'utilisateurs et groupes rattachés au domaine.
Il faut ajouter winbind à passwd et group et rajouter wins à hosts.
[[:tutoriel:comment_editer_un_fichier|Éditez le fichier]] **/etc/nsswitch.conf**.

Exemple :

<file>
passwd:        compat winbind
group:         compat winbind
shadow:        compat

hosts:         files mdns4_minimal [NOTFOUND=return] dns mdns4 wins
networks:      files

protocols:     db files
services:      db files
ethers:        db files
rpc:           db files

netgroup:      nis
</file>


==== smb.conf ====

Le fichier « /etc/samba/smb.conf » est le fichier de configuration de votre client Samba mais aussi de //Winbind//.

[[:tutoriel:comment_editer_un_fichier|Éditez votre fichier]] **/etc/samba/smb.conf** puis modifiez ou ajoutez les paramètres suivant dans la section **[Global]** :

^ Paramètre ^ Exemple ^ Rôle et observations ^
|workgroup|<file>workgroup = NomDomaineSamba</file>|Cela correspond au nom de votre domaine.|
|netbios name|<file>netbios name = Nom_netbios_de_ma_machine</file>|C'est le nom que votre machine doit avoir sur le réseau NetBios.\\ **attention ce nom doit être unique** au risque de collision et impossibilité de vous connecter|
|security|<file>security = DOMAIN</file>|Ce paramètre indique que l'on veut que les options de sécurité soit au Domaine|
|wins server|<file>wins server = 10.0.0.1</file>|Très important pour la résolution de nom netbios, généralement c'est votre serveur Samba qui est serveur Wins.|
|winbind separator|<file>winbind separator = /</file>|C'est pour séparer le nom du domaine de l'utilisateur lors de la connexion (ex. : DOMAIN_SMB/Nom_utilisateur)|
|winbind uid|<file>winbind uid = 10000-20000</file>|C'est pour indiquer la plage de numéro uid que les utilisateurs du domaine auront.|
|winbind gid|<file>winbind gid = 10000-20000</file>|Idem mais pour les groupes.|
|winbind use default domain|<file>winbind use default domain = yes</file>|Configure winbind en domaine par défaut.|
|template shell|<file>template shell = /bin/bash</file>|Donne le shell par défaut des utilisateurs du domaine|
|template homedir|<file>template homedir = /home/%D/%U</file>|Indique l'emplacement des répertoires "Home" des utilisateurs du domaine. Il faudra créer le répertoire %D avec D = au nom du domaine Samba. Ce répertoire doit être créer avec les droits root, sinon les utilisateurs du domaine ne pourront pas ouvrir de session même si l'authentification a réussi.|


===== Intégration de la machine au PDC Samba =====


Pour intégrer votre machine au domaine il vous faut vous connecter au serveur Samba avec :

<code>
sudo net rpc join -S IP_du_serveur -U root
passwd:                                   ##mot de passe pour sudo
passwd:                                   ##mot de passe de root connexion au domaine

Joined domain NomDomaineSamba             ##message si l'intégration a réussi
</code>

Si vous avez un message d'erreur comme :

<code>
Creation of workstation account failed .....
</code>
retapez :
<code>
sudo net rpc join -S IP_du_serveur -U root
passwd:                                   ##mot de passe de root connexion au domaine
</code>

Il faut que "root" ait le droit d'ajouter les machines dans le domaine.

Maintenant il faut relancer le démon Winbind

<code>
sudo /etc/init.d/winbind restart
 * Stopping the Winbind daemon winbind                                   [ OK ]
 * Starting the Winbind daemon winbind                                    [ OK ]
</code>

Pour tester si cela fonctionne quelques commandes :
<code>
wbinfo --own-domain                     ##renvoie le nom du domaine
wbinfo -u                               ##renvoie la liste des utilisateurs du domaine
wbinfo -g                               ##renvoie la liste des groupes
</code>


===== Configuration de pam_mount =====


Les dernières versions de pam_mount se configurent dans un fichier au format xml

[[:tutoriel:comment_editer_un_fichier|éditez le fichier]] /etc/security/pam_mount.conf.xml

l'ajout de lecteurs à monter au démarrage se fait aux alentours de la ligne 270, après une grande partie de commentaires (en bleu dans gedit).

Pour monter les lecteurs au protocole CIFS ajoutez des lignes comme dans les exemples:

**Partage global**
''<volume fstype="cifs" server="NomDuServeurDePartage" path="INTRANET$" mountpoint="/media/intranet/" user="*" options="rw,auto,iocharset=utf8" />''

**Dossiers de l'utilisateur:**
Pour utiliser l'identifiant de l'utilisateur dans la définition des dossier à monter, on peut utiliser la variable %(USER) comme dans l'exemple qui suit:
''
<volume fstype="cifs" server="NomDuServeurDePartage" path="DOS_PERSO$/%(USER)" mountpoint="/media/%(USER)/" user="*" options="rw,auto,iocharset=utf8" />
''

FIXME

===== Configuration de PAM =====


Les fichiers pam permettent de gérer les connexions et autorisations quelles soient
locales (gdm,kdm,xdm) ou distantes (ssh).
Pour plus d'information sur PAM reportez vous à cette page
http://www.linux-kheops.com/doc/cours/jgourdin/outils-tcp-ip/Linux-pam.html

Ici nous voulons que les utilisateurs du domaine puissent se connecter localement donc
nous allons modifier le fichier /etc/pam.d/gdm si vous êtes sous Ed/Ubuntu et si vous
utilisez Kubuntu c'est /etc/pam.d/kdm.
En prmier faites une copie de sauvegarde de votre fichier d'origine.

  sudo cp /etc/pam.d/gdm /etc/pam.d/gdm.bak

puis éditez le:

  sudo gedit /etc/pam.d/gdm

Supprimez le contenu du fichier (attention d'avoir bien fait la sauvegarde du fichier avant) puis ajoutez les lignes suivantes:

<code>
auth      required       pam_mount.so
auth      sufficient     pam_winbind.so use_first_pass
auth      required       pam_unix.so use_first_pass

account   sufficient     pam_winbind.so
account   sufficient     pam_unix.so

password  required       pam_unix.so nullok obscure min=4 max=8 md5

session   required       pam_unix.so
session   optional       pam_mkhomedir.so
session   optional       pam_mount.so
</code>

----

//contributeurs: [[:utilisateurs:Manu]].//